code block記法とtable記法を検知・分離する
コードブロック記法とテーブル記法と通常の行とにscrapbox記法を分解する
/mizdra/scrapbox-parserとやりたいことは同じ
esm.shからとってきたscrapbox-parser@7.1.0には、本来exportされないはずのparseToRows()やpackRows()がexportされている
これを使えば、細かい記法の解析を端折って、block毎に分割するだけのparserを作ることができる
こんな感じ
今開いているscrapboxのページの構文解析結果を新しいタブに表示する#60b027061280f00000617d8eとだいたい同じ
codeBlockとtableのobjectの一行目には、code:...やtable:...がそのまま入っている
言語名を識別したいときは、適宜正規表現を使って解析する
code:js
(async () => {
const {parse} = await import('/api/code/takker/code_block記法とtable記法を検知・分離する/script.js');
const {openJSON} = await import('/api/code/takker/javascriptでjsonファイルをweb_browserで開く/script.js');
openJSON(parse(scrapbox.Page.lines.map(({text}) => text).join('\n')));
})();
code:script.js
import {parseToRows, packRows} from '../scrapbox-parser@7.1.0/script.js';
export const parse = (text) => packRows(parseToRows(text), {hasTitle: true});
#2021-05-29 23:13:23